// 导入 axios
import axios from 'axios'

export default {
  // 开启命名空间
  namespaced: true,
  state: () => ({
    token: '',
    // 手动持久化, 每次去 localStorage 中取值
    // token: localStorage.getItem('token') || ''
    // 定义 userInfo 数据
    userInfo: {}
  }),
  mutations: {
    // 定义一个修改 token 的 mutation 函数
    updateToken (state, token) {
      state.token = token
      // 每次修改都存入 localStorage
      // localStorage.setItem('token', token)
    },
    // 定义一个修改 userInfo 的函数
    updateUserInfo (state, userInfo) {
      state.userInfo = userInfo
    }
  },
  actions: {
    async getUserInfo (context) {
      // console.log(context)
      // 发起 ajax 请求
      // const { data: res } = await axios.get('/my/userinfo', {
      //   headers: {
      //     Authorization: context.state.token
      //   }
      // })
      // console.log(res)

      // const p = new Promise((resolve, reject) => {
      //   // 做一些异步操作
      //   setTimeout(() => {
      //     // resolve({ data: '我是信息', code: 0, message: '获取信息成功' })
      //     reject(new Error('你错了!'))
      //   }, 1000)
      // })

      // // p.then(res => {
      // //   console.log(res)
      // // })
      // const { data: result } = await p.catch(e => e)
      // console.dir(result)

      // 加了请求拦截器后不需要传入 token
      const { data: res } = await axios.get('/my/userinfo').catch(e => e)
      // console.log(res)
      if (res) {
        context.commit('updateUserInfo', res.data)
      }
    }
  }
}
